import ChapterSelector from "@/components/manga/chapters"; import HamburgerMenu from "@/components/manga/mobile/hamburgerMenu"; import TopSection from "@/components/manga/info/topSection"; import Footer from "@/components/shared/footer"; import Head from "next/head"; import { useEffect, useState } from "react"; import { setCookie } from "nookies"; import { getServerSession } from "next-auth"; import { authOptions } from "../../api/auth/[...nextauth]"; import getAnifyInfo from "@/lib/anify/info"; import { NewNavbar } from "@/components/shared/NavBar"; export default function Manga({ info, userManga }) { const [domainUrl, setDomainUrl] = useState(""); const [firstEp, setFirstEp] = useState(); const chaptersData = info.chapters.data; useEffect(() => { setDomainUrl(window.location.origin); }, []); return ( <> {info ? `Manga - ${ info.title.romaji || info.title.english || info.title.native }` : "Getting Info..."}
<>
{chaptersData.length > 0 ? ( ) : (

No Chapter Available :(

)}
); } export async function getServerSideProps(context) { const session = await getServerSession(context.req, context.res, authOptions); const accessToken = session?.user?.token || null; const { id } = context.query; const key = process.env.API_KEY; const data = await getAnifyInfo(id, key); let userManga = null; if (session) { const response = await fetch("https://graphql.anilist.co/", { method: "POST", headers: { "Content-Type": "application/json", ...(accessToken && { Authorization: `Bearer ${accessToken}` }), }, body: JSON.stringify({ query: ` query ($id: Int) { Media (id: $id) { mediaListEntry { status progress progressVolumes status } id idMal title { romaji english native } } } `, variables: { id: parseInt(id), }, }), }); const data = await response.json(); const user = data?.data?.Media?.mediaListEntry; if (user) { userManga = user; } } if (!data?.chapters) { return { notFound: true, }; } return { props: { info: data, userManga, }, }; }